<!DOCTYPE html>
<html lang="en">

<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" type="text/javascript"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ"
        crossorigin="anonymous"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb"
        crossorigin="anonymous">
    <script type="text/javascript">

        var getDate = function (y, m) {
            var s, e;
            if (m == "01") { s = y + "-01-01"; e = y + "-01-31" }
            if (m == "02") { s = y + "-02-01"; e = y + "-02-28" }
            if (m == "03") { s = y + "-03-01"; e = y + "-03-31" }
            if (m == "04") { s = y + "-04-01"; e = y + "-04-30" }
            if (m == "05") { s = y + "-05-01"; e = y + "-05-31" }
            if (m == "06") { s = y + "-06-01"; e = y + "-06-30" }
            if (m == "07") { s = y + "-07-01"; e = y + "-07-31" }
            if (m == "08") { s = y + "-08-01"; e = y + "-08-31" }
            if (m == "09") { s = y + "-09-01"; e = y + "-09-30" }
            if (m == "10") { s = y + "-10-01"; e = y + "-10-31" }
            if (m == "11") { s = y + "-11-01"; e = y + "-11-30" }
            if (m == "12") { s = y + "-12-01"; e = y + "-12-31" }
            return [s, e];
        };

        var getDate = function (y, q) {
            var s, e;
            if (q == 1) {
                e = y + "-03-31";
                s = y + "-01-01";
            }
            if (q == 2) {
                e = y + "-06-30";
                s = y + "-04-01";
            }
            if (q == 3) {
                e = y + "-09-30";
                s = y + "-07-01";
            }
            if (q == 4) {
                e = y + "-12-31";
                s = y + "-09-01";
            }
            return [s, e];
        };



        var url = window.location.href;
        var prog_id = "VCuHIFtJJSv";
        var arrayUrl = url.split('=');
        var ou = arrayUrl[3];
        var arrayUrl1 = arrayUrl[2].split('&');
        var pe = arrayUrl1[0];
        var year = pe.split('Q')[0];
		     var quarter = pe.split('Q')[1];
        var dates = getDate(year, quarter);
        var startdate = dates[0];
        var enddate = dates[1];
        var enddateLastYear = new Date(enddate);
        var startdateLastYear = new Date(startdate);
        //enddateLastYear.setMonth(enddateLastYear.getMonth() - 6);
        startdateLastYear.setFullYear(startdateLastYear.getFullYear() - 1);
       // startdateLastYear.setDate(startdateLastYear.getDate() - 1);
        enddateLastYear.setFullYear(enddateLastYear.getFullYear() - 1);
        //enddateLastYear.setDate(enddateLastYear.getDate() - 1);

        var dde = enddateLastYear.getDate();
        var mme = enddateLastYear.getMonth() + 1; //January is 0!

        var yyyye = enddateLastYear.getFullYear();
        if (dde < 10) {
            dde = '0' + dde;
        }
        if (mme < 10) {
            mme = '0' + mme;
        }
        var enddately = yyyye + '-' + mme + '-' + dde;

        var dds = startdateLastYear.getDate();
        var mms = startdateLastYear.getMonth() + 1; //January is 0!

        var yyyys = startdateLastYear.getFullYear();
        if (dds < 10) {
            dds = '0' + dds;
        }
        if (mms < 10) {
            mms = '0' + mms;
        }
        var startdately = yyyys + '-' + mms + '-' + dds;
        var predate = new Date(enddate);
        predate.setMonth(predate.getMonth() - 3);
        var totalevent, totalEndevent = 0, activeatendevent = 0;
        var enrolledLastYear = 0;

        var checkStatus = function (data) {
            data.enrollments.forEach(function (element, index) {
                var tei = element.trackedEntityInstance;
                var count = 0;
                enrolledLastYear++;
                $.when(
                    $.getJSON("../api/events.json?orgUnit=" + ou + "&program=" + prog_id + "&programStage=Kr60c8j7vMe&trackedEntityInstance=" + tei + "&skipPaging=true", {
                        format: "json"
                    })
                ).then(function (data2) {
                    if (data2.events.length == 0) {
                        count = 1;
                    }
                    else if (data2.httpStatusCode == 409 || data2.httpStatusCode == "409") { count = 0; }
                    else {
                        var date = data2.events[0].eventDate;
                        var first = date.split('T')[0];
                        var expireDate = new Date(first);
                        if (new Date(enddate) < expireDate) {
                            count = 1;
                        }
                    }
                    if (count == 1) {
                        activeatendevent++;
                    }
                    document.getElementById('totalNumber').innerHTML =  activeatendevent;
                    document.getElementById('totalNumber2').innerHTML = enrolledLastYear;
                    if (data.enrollments.length - 1 == index) {
                        document.getElementById('loader').style.display = "none";
                    }
                });

            });

        };

        $(document).ready(function () {

            $.when(
                $.getJSON("../api/enrollments.json?ou=" + ou + "&ouMode=DESCENDANTS&program=" + prog_id + "&fields=trackedEntityInstance&skipPaging=true&programStartDate=" + startdately + "&programEndDate=" + enddately, {
                    format: "json"
                })
            ).then(function (dataa) {
                if (dataa.enrollments.length == 0) {
                    alert('No enrollments found!');
					               window.history.back();
                }
                else {
                    checkStatus(dataa);
                }
            });
        });
    </script>
    <style>
        table {
            table-layout: fixed;
            word-wrap: break-word;
            text-align: center;
        }

        /* Absolute Center Spinner */

        .loading {
            position: fixed;
            z-index: 999;
            height: 2em;
            width: 2em;
            overflow: show;
            margin: auto;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
        }

        /* Transparent Overlay */

        .loading:before {
            content: '';
            display: block;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.3);
        }

        /* :not(:required) hides these rules from IE9 and below */

        .loading:not(:required) {
            /* hide "loading..." text */
            font: 0/0 a;
            color: transparent;
            text-shadow: none;
            background-color: transparent;
            border: 0;
        }

        .loading:not(:required):after {
            content: '';
            display: block;
            font-size: 10px;
            width: 1em;
            height: 1em;
            margin-top: -0.5em;
            -webkit-animation: spinner 1500ms infinite linear;
            -moz-animation: spinner 1500ms infinite linear;
            -ms-animation: spinner 1500ms infinite linear;
            -o-animation: spinner 1500ms infinite linear;
            animation: spinner 1500ms infinite linear;
            border-radius: 0.5em;
            -webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
            box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
        }

        /* Animation */

        @-webkit-keyframes spinner {
            0% {
                -webkit-transform: rotate(0deg);
                -moz-transform: rotate(0deg);
                -ms-transform: rotate(0deg);
                -o-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(360deg);
                -moz-transform: rotate(360deg);
                -ms-transform: rotate(360deg);
                -o-transform: rotate(360deg);
                transform: rotate(360deg);
            }
        }

        @-moz-keyframes spinner {
            0% {
                -webkit-transform: rotate(0deg);
                -moz-transform: rotate(0deg);
                -ms-transform: rotate(0deg);
                -o-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(360deg);
                -moz-transform: rotate(360deg);
                -ms-transform: rotate(360deg);
                -o-transform: rotate(360deg);
                transform: rotate(360deg);
            }
        }

        @-o-keyframes spinner {
            0% {
                -webkit-transform: rotate(0deg);
                -moz-transform: rotate(0deg);
                -ms-transform: rotate(0deg);
                -o-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(360deg);
                -moz-transform: rotate(360deg);
                -ms-transform: rotate(360deg);
                -o-transform: rotate(360deg);
                transform: rotate(360deg);
            }
        }

        @keyframes spinner {
            0% {
                -webkit-transform: rotate(0deg);
                -moz-transform: rotate(0deg);
                -ms-transform: rotate(0deg);
                -o-transform: rotate(0deg);
                transform: rotate(0deg);
            }
            100% {
                -webkit-transform: rotate(360deg);
                -moz-transform: rotate(360deg);
                -ms-transform: rotate(360deg);
                -o-transform: rotate(360deg);
                transform: rotate(360deg);
            }
        }

        button {
            cursor: pointer;
        }
    </style>

    <body>
        <div class="loading" id="loader">Loading&#8230;</div>

        <br>
        <table class="table table-bordered table-hover reporttable">
            <thead>
                <tr>
                    <td style="width:50%">Active patients at end of reporting quarter who enrolled in same quarter last year</td>
                    <td style="width:50%" id="totalNumber"></td>
                </tr>
                <tr>
                    <td style="width:50%">Patients who enrolled same quarter last year</td>
                    <td style="width:50%" id="totalNumber2"></td>
                </tr>
            </thead>
        </table>
    </body>

</html>
